那昨天我用了git status查看了Repository的狀態,但是還沒去了解它到底顯示了甚麼資訊,所以今天就來看看他說什麼。
No commits yet
代表目前還沒有建立任何Commit,所以Git還沒有留下第一個版本紀錄。
Untracked files:
...
則表示 Git 已經發現專案裡有這些檔案,但目前還沒有將它們加入版本控制。
那還有一個更方便的,因為我用的是Visual Studio,他就有一個內建Git功能了,但我想瞭解他到底怎麼做得所以還是使用了Terminal。
在Git列出的許多Untracked files中有幾個檔案似乎不需要被Git來追蹤,像是:
.vs/ 是Visual Studio在開發專案時產生的資料夾,主要儲存工作環境與使用者相關設定,在下載專案後通常可以由自己的Visual Studio 重新產生。
bin/是專案編譯後產生的檔案,例如編譯後的DLL,由原始程式碼經過編譯後產生的結果。
obj/是存放專案在建置過程中產生的中間檔案。是Visual Studio或.NET在編譯、建置專案過程中產生的暫存或中間產物,通常也可以在重新建置專案時再次產生。
所以它們通常不是我們真正需要維護的「原始程式碼」,而是開發工具或建置過程產生的檔案。
但如果把這些檔案全部放進Git,不但可能會增加Repository的大小,也可能讓版本紀錄出現許多沒必要的變更。
因此 .gitignore就是要來解決這件問題的。
.gitignore是用來告訴Git「哪些檔案或資料夾不需要被追蹤」的設定檔。
在.gitignore裡面寫入不希望Git追蹤的檔案或資料夾名稱,Git 在判斷哪些檔案要加入版本控制時,就會根據裡面的規則忽略這些檔案。
那為了要把這些通常不用加入Git的檔案忽視掉,我們就需要用到 .gitignore。
首先需要在專案的根目錄eyes_prj建立.gitignore的檔案:
接著用記事本打開.gitignore,並輸入不要加入Git的檔案
存檔後回到PowerShell再次查看Repository的狀態
設定完 .gitignore 後,再次 git status檢查Repository狀態,可以發現原本的 .vs/、bin/ 和 obj/已經沒有出現在Untracked files中了,代表Git已經依照 .gitignore的規則忽略這些檔案。.gitignore 本身出現在Untracked files裡,這是因為它目前也是一個還沒加入版本控制的新檔案。之後我會將 .gitignore一起加入Git,讓其他人在取得這個Repository時,也使用相同的忽略規則。